package com.fruit.service.pay;

import java.util.Map;

import com.fruit.pojo.goods.GoodsSpecTime;
import com.fruit.pojo.pay.PayInfo;
import com.fruit.pojo.pay.TransactionFlow;

/**
 * 支付接口类
 *
 * @author shibeilei
 * @version 2017.12.01 17:03
 *
 */
public interface PayManager {
	
	/**
	 * 校验确认订单参数
	 * @param tradeId 
	 * @param pi 提交参数
	 * @return 返回校验参数结果
	 */
	Map<String, Object> findCheckFirmOrderParams(String tradeId, PayInfo pi);
	
	/**
	 * 校验商品参数
	 * @param tradeId 
	 * @param pi 
	 * @return 返回校验结果
	 */
	Map<String, Object> findCheckGoodsParams(String tradeId, PayInfo pi);
	
	/**
	 * 校验参数
	 * @param tradeId 
	 * @param pi pi
	 * @return 返回校验参数结果
	 * @author shibeilei
	 * @version 2017.12.01 17:03
	 */
	Map<String, Object> findCheckOrderParams(String tradeId, PayInfo pi);

	/**
	 * 提交订单
	 * @param pi pi
	 * @param goodsSpecTime goodsSpecTime
	 * @return 返回提交订单结果
	 * @author shibeilei
	 * @version 2017.12.01 17:03
	 */
	Map<String, Object> saveSubmitOrder(GoodsSpecTime goodsSpecTime, PayInfo pi);
	
	/**
	 * 处理交易流水
	 * @param tradeId tradeId
	 * @param transactionCode transactionCode
	 * @param payMode payMode
	 * @return 处理交易流水结果
	 * @author shibeilei
	 * @version 2017.12.01 18:05
	 */
	Map<String, Object> updateTransaction(String tradeId, String transactionCode, String payMode);
	
	/**
	 * 获取支付信息
	 * @param transactionCode transactionCode
	 * @return 获取交易流水记录
	 * @author shibeilei
	 * @version 2017.12.01 18:05
	 */
	TransactionFlow getTransactionFlow(String transactionCode);
	
}
